The present invention relates generally to printing systems, and more particularly to a universal printing system that facilitates printing to a remote printer via a print server.
Users of mobile devices such as Personal Digital Assistants (PDAs), laptops or portable personal computers, two way pagers, mobile phones, and other mobile devices can often access information over the internet. However, to print this information, the users of these devices usually need to either have a printer physically connected to the device, or the user must pre-store the document on an internet based storage that can only be accessed by special types of print devices for printing.
Another problem with mobile devices is that many documents must be printed using print drivers or the software used to create the document. Some documents may contain multiple document formats, for example a word processing document containing a graphic document. The mobile device may not have the document's native software for all of the document's formats. As mobile devices often have limited storage capabilities, it is often not feasible to install all of the necessary software programs to handle all of the formats.
Because the device is mobile, a user may desire to print to the nearest printer, and the mobile device may not have a printer driver for the nearest printer installed. Most printers require that a document be converted to a print file containing printer control codes or commands. Thus for a mobile device to be able to print to any printer, it would have to have printer drivers for all known printers installed on it, which due to limited storage capabilities may degrade the usefulness of the device.
One solution to the aforementioned problems is a universal printing system that can enables a portable device, or any client, to select a printer and send a document to that printer via a server without having the native applications for the document or print drivers for the printer. However, this solutions requires the user to log into the server and upload the document to the server. Sometimes a user may prefer to utilize personal preferences such as print finish settings. If the user has a printer driver installed on the client computer, then the user can print the job using the Internet Print Protocol to print to the universal server.
The Internet Printing Protocol (IPP 1.0), described in Internet Printing Protocol/1.1: Model and Semantics and Internet Printing Protocol/1.1: Encoding and Transport, published by the Printer Working Group of the Internet Engineering Task Force (IETF) allows an end user to remotely print to any Internet Print Protocol-enabled print through a communication network. The advantage of using the Internet Printing Protocol is that it provides the opportunity to transmit digital document print jobs anywhere in the world to printers coupled to the Internet without the long distance charges that a facsimile transmission can incur.
The Internet printing protocol may be bi-directional, allowing for communication between the printer and the client process transmitting print jobs to the printer. For example, the user can issue print jobs, inquire about a printer's capabilities, inquire about the status of a printer and the status of a print job, as well as remotely issue other printing commands such as canceling a print job.
However, to print to a remote printer via the Internet Printing Protocol, the printer must have an assigned URL address so that properly formatted print jobs may be sent directly to the printer's address and printed at the remote printer. Therefore, print jobs cannot be submitted to printers that do not have an assigned URL address using the Internet Printing Protocol.
Another problem often encountered when using the Internet Printing Protocol is that not every printer vendor has bi-directional Internet Printing Protocol. Therefore, users are unable to monitor the status of their submitted print jobs.
Thus, a need exists for a method to print using the Internet Printing Protocol to a server which can then appropriately route the print job to any printer regardless of whether it supports the Internet Printing Protocol. There is also a need for a method to retrieve printer job status from printers that do not support bi-directional Internet Printing Protocol.